#ifndef _INTERFACE_BACKEND_H
#define _INTERFACE_BACKEND_H
#include <QObject>
#include <QByteArray>

#include "_Interface/_global_datastruct.h"

class  BackendInterface : public QObject{
public:
    BackendInterface(){}
    ~BackendInterface(){}
public:
    virtual void onbtnClickedSensorConnect() = 0;
    virtual void onbtnClickedRobotTCPConnect() = 0;
    virtual void onbtnClickedRobotUDPConnect() = 0;
    virtual void onbtnClickedCalibration() = 0;
    virtual void onbtnClickedSeamFinding() = 0;
    virtual void onbtnClickedTaskNull() = 0;
    virtual void onbtnClickedSeamFindingStart2End() = 0;
    virtual void onbtnClickedSeamTracking() = 0;
    virtual void onbtnClickedCalPos1() = 0;
    virtual void onbtnClickedCalPos2() = 0;
    virtual void onbtnClickedCalPos3() = 0;
    virtual void onbtnClickedCalPos4() = 0;
    virtual void onbtnClickedCalPos5() = 0;
    virtual void onbtnClickedCalPos6() = 0;
    virtual void onbtnClickedCalibrationDo(double &X,double &Y,double &Z,double &A,double &B,double &C) = 0;
    virtual void onbtnClickedCalibrationSave(double Hand2EyePosition[6]) = 0;
    virtual void onbtnClickedCalibrationReset() = 0;
    virtual void onbtnClickedPointRecord() = 0;

    virtual void onbtnClickedWorkType() = 0;
    virtual void onbtnClickedSeamPosCal(double (&PositionStart)[6],double (&PositionEnd)[6]) = 0;
    virtual void onbtnClickedSeamPosReset() = 0;
    virtual void onbtnClickedSeamPosSend() = 0;

    virtual void toRobotKRLReceiveLoopRun() = 0;
    virtual void toRobotKRLSendLoopRun() = 0;
    virtual void frLaserSensorReceive() = 0;
    virtual void toLaserSensorSend() = 0;

    virtual void SeamTechTCPThreadLoopRun() = 0;
    virtual void SeamTechLoopRun() = 0;
    virtual void SeamTechUDPThreadLoopRun() = 0;

    virtual void ReadLaserSensorDataY(double& value) = 0;
    virtual void ReadLaserSensorDataZ(double& value) = 0;

    virtual void LaserSensorDataSave() = 0;

public:
    virtual bool getButtonStatus(ENUM_ButtonName Name) = 0;
    virtual void readAutoCalibrationResualt(double (&value)[6]) = 0;
    virtual void readAutoSeamStartPointResualt(double (&value)[6]) = 0;
    virtual void readAutoSeamEndPointResualt(double (&value)[6]) = 0;
};

#endif // _INTERFACE_BACKEND_H
